package request

import (
	"gitee.com/cjsn/topsdk/ability254/domain"
	"gitee.com/cjsn/topsdk/util"
)

type AlibabaServicecenterWorkcardServiceskuSuggestRequest struct {
	/*
	   工单id     */
	WorkcardId *int64 `json:"workcard_id" required:"true" `
	/*
	   服务商反馈服务项     */
	TpSuggestServiceSkuInfos *[]domain.AlibabaServicecenterWorkcardServiceskuSuggestTpSuggestServiceSkuInfoDto `json:"tp_suggest_service_sku_infos" required:"true" `
	/*
	   拓展信息     */
	ExtendInfo *map[string]interface{} `json:"extend_info,omitempty" required:"false" `
	/*
	   真实履约服务商nick(非erp系统不要调用)     */
	RealTpNick *string `json:"real_tp_nick,omitempty" required:"false" `
}

func (s *AlibabaServicecenterWorkcardServiceskuSuggestRequest) SetWorkcardId(v int64) *AlibabaServicecenterWorkcardServiceskuSuggestRequest {
	s.WorkcardId = &v
	return s
}
func (s *AlibabaServicecenterWorkcardServiceskuSuggestRequest) SetTpSuggestServiceSkuInfos(v []domain.AlibabaServicecenterWorkcardServiceskuSuggestTpSuggestServiceSkuInfoDto) *AlibabaServicecenterWorkcardServiceskuSuggestRequest {
	s.TpSuggestServiceSkuInfos = &v
	return s
}
func (s *AlibabaServicecenterWorkcardServiceskuSuggestRequest) SetExtendInfo(v map[string]interface{}) *AlibabaServicecenterWorkcardServiceskuSuggestRequest {
	s.ExtendInfo = &v
	return s
}
func (s *AlibabaServicecenterWorkcardServiceskuSuggestRequest) SetRealTpNick(v string) *AlibabaServicecenterWorkcardServiceskuSuggestRequest {
	s.RealTpNick = &v
	return s
}

func (req *AlibabaServicecenterWorkcardServiceskuSuggestRequest) ToMap() map[string]interface{} {
	paramMap := make(map[string]interface{})
	if req.WorkcardId != nil {
		paramMap["workcard_id"] = *req.WorkcardId
	}
	if req.TpSuggestServiceSkuInfos != nil {
		paramMap["tp_suggest_service_sku_infos"] = util.ConvertStructList(*req.TpSuggestServiceSkuInfos)
	}
	if req.ExtendInfo != nil {
		paramMap["extend_info"] = util.ConvertStruct(*req.ExtendInfo)
	}
	if req.RealTpNick != nil {
		paramMap["real_tp_nick"] = *req.RealTpNick
	}
	return paramMap
}

func (req *AlibabaServicecenterWorkcardServiceskuSuggestRequest) ToFileMap() map[string]interface{} {
	fileMap := make(map[string]interface{})
	return fileMap
}
